/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * articulos_sie_repventaxfam.java
 *
 * Created on 23/03/2011, 04:05:40 PM
 */

package sie_invdis;


import java.sql.*;
import javax.swing.*;

import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.JTable.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Date;
import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.text.*;
import javax.swing.JFrame;


import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.RefineryUtilities;
/**
 *
 * @author Michelle
 */
public class articulos_sie_repventaxfam extends javax.swing.JFrame {

     private javax.swing.table.DefaultTableModel jtable_modelo;
     private javax.swing.table.DefaultTableModel jtable_modelo_detxtie;
      //private javax.swing.table.DefaultTableModel jtable_tiendas;
      private  JTable jtable_tiendas=variables_global.gettabla_tiendas();
      
      private java.util.Date fechahoy=new Date();
      private int visualisa=0;
      private String esquesele="0";
      bd_conexion x = new bd_conexion();
      ResultSet rs = null;
      private SimpleDateFormat formateadoresta = new SimpleDateFormat("yyyy-MM-dd");
      private int ordenamiento=2,controlcombo=0,indexactual=0,yacarguefaxti=0,visualizar=3;

    /** Creates new form articulos_sie_repventaxfam */
    public articulos_sie_repventaxfam() {
        this.iniciar_modelo_de_tabla();
        this.iniciar_modelo_fam_detxtie();
        initComponents();
        //x.estableceConexion();
        this.setLocation(25,25);
        this.loadcombo();
        
        Calendar fechaini = Calendar.getInstance(); // obtiene la fecha actual
        fechaini.set(fechahoy.getYear()+1900,fechahoy.getMonth(), 1);
        this.jdc_fechainicial.setDate(fechaini.getTime());
        this.jdc_fechafinal.setDate(fechahoy);
         this.buttonGroup1.setSelected(jrbtn_estemes.getModel(), true);
        this.buttonGroup2.setSelected(jrbtn_importe.getModel(), true);
        
        this.contruir_reporte(this.jdc_fechainicial.getDate(),this.jdc_fechafinal.getDate(),ordenamiento,esquesele);
        jtb_repxfamilias.getColumnModel().getColumn(0).setPreferredWidth(180);//tem ent
        jtb_repxfamilias.getColumnModel().getColumn(1).setPreferredWidth(40);//familia
        jtb_repxfamilias.getColumnModel().getColumn(2).setPreferredWidth(60);//subfam.
        jtb_repxfamilias.getColumnModel().getColumn(3).setPreferredWidth(60);//id
        jtb_repxfamilias.getColumnModel().getColumn(4).setPreferredWidth(60);//clave
        jtb_repxfamilias.getColumnModel().getColumn(5).setPreferredWidth(35);//descrip.
        jtb_repxfamilias.getColumnModel().getColumn(6).setPreferredWidth(35);//item
        jtb_repxfamilias.getColumnModel().getColumn(7).setPreferredWidth(35);//precio
        jtb_repxfamilias.getColumnModel().getColumn(8).setPreferredWidth(30);//f.ult. compra


        jtb_repxfamilias.getTableHeader().setBackground(Color.yellow);
        this.buttonGroup3.setSelected(jrbtn_preventa.getModel(), true);
    }

      private void loadcombo(){
        jtable_tiendas=variables_global.gettabla_tiendas();
         int numerotiendas=this.jtable_tiendas.getRowCount();
         this.jcbx_tiendas.addItem("0:Todas Las Tiendas");
          for(int ii=0;ii<numerotiendas;ii++)
                        {
                             this.jcbx_tiendas.addItem(jtable_tiendas.getValueAt(ii, 1).toString()+":"+jtable_tiendas.getValueAt(ii, 0).toString());
                        }
    }
 private void iniciar_modelo_de_tabla()
    {

        jtable_modelo=new javax.swing.table.DefaultTableModel();//Creo el modelo
        jtable_modelo.addColumn("<html><b>Familia</b></html>");
        jtable_modelo.addColumn("<html><b>Cant. Piezas</b></html>");
        jtable_modelo.addColumn("<html><b>Imp.Precio Venta</b></html>");
        jtable_modelo.addColumn("<html><b>Imp. Costo</b></html>");
        jtable_modelo.addColumn("<html><b>Diferencia</b></html>");
        jtable_modelo.addColumn("<html><b>D/C</b></html>");
        jtable_modelo.addColumn("<html><b>% Venta</b></html>");
        jtable_modelo.addColumn("<html><b>% Acum.</b></html>");
        jtable_modelo.addColumn("<html><b>Lugar</b></html>");
   }
void LimpiarJTable()
    {
     //limpiar la tabla
        while(jtable_modelo.getRowCount()>0)jtable_modelo.removeRow(0);
    }
private void iniciar_modelo_fam_detxtie()
    {
        int numerotiendas=this.jtable_tiendas.getRowCount(),ii=0,idtienda=0,ndias=0;
        jtable_modelo_detxtie=new javax.swing.table.DefaultTableModel();//Creo el modelo
        jtable_modelo_detxtie.addColumn("Familia");
        for(int i=0;i<numerotiendas;i++)
           {
                 jtable_modelo_detxtie.addColumn("<html><b>"+this.jtable_tiendas.getValueAt(i,1).toString()+":"+this.jtable_tiendas.getValueAt(i,0).toString()+"</b></html>");
           }
        jtable_modelo_detxtie.addColumn("Total Familia");
    }

private int findcolumna_idtienda (String titulo)  {
  int columnas = jtable_modelo_detxtie.getColumnCount(),columencontrado=0;
  String columtitulo[]=null;
      for(int j = 1 ;j < columnas ; j++)
                {
                    columtitulo= jtable_modelo_detxtie.getColumnName(j).replace("<html><b>","").split(":");
                     System.out.println("Busqueda:"+columtitulo[0]+" "+titulo);
                    if(columtitulo[0].equals(titulo))
                        {
                            columencontrado=j;
                             System.out.println(titulo+" "+columtitulo[0]+" "+columencontrado);
                        }
                }
    return columencontrado;
}
private void crea_hoja_familiaresumen(String idfamilia,String familiadescribe,String cantidad,int columna)
    {
        DecimalFormat miformat = new DecimalFormat("###,###,###");
        int numerofilas=this.jtable_modelo_detxtie.getRowCount();
        String idstat[]=null;
        int numerocolumnas=this.jtable_modelo_detxtie.getColumnCount(),ii=00;
        int encontrado=0;
        Object[] fnewRow = new Object[numerocolumnas];
        float cantifam=0;
       //invoco al metodo que trae el recordset de datos
        cantifam=Float.valueOf(cantidad);
        for( ii=0;ii<numerofilas;ii++)
                {
                    idstat=jtable_modelo_detxtie.getValueAt(ii, 0).toString().split(":");
                    System.out.println("Agregando:"+cantifam+" "+familiadescribe);
                    if (idstat[0].equals(idfamilia))
                        {
                            encontrado=1;
                            jtable_modelo_detxtie.setValueAt(miformat.format(cantifam),ii ,columna);
                        }
                }
       if(encontrado==0)
            {
            fnewRow[0]=idfamilia+":"+familiadescribe;
            for( ii=1;ii<numerocolumnas;ii++)
                {
                               System.out.println(idfamilia+":"+familiadescribe);
                               if(ii==columna)
                                    {
                                        fnewRow[ii]=miformat.format(cantifam);
                                    }
                               else
                                    {
                                        fnewRow[ii]="0";
                                    }
                }
             jtable_modelo_detxtie.addRow(fnewRow);
           }
    }
private void carga_datos_familiaresumen(Date fechai,Date fecha,int ordena,String idesq)
    {
       String fechaeuro="";
       int columnatitulo=0;
       String mespartido[]=null;

       while(jtable_modelo_detxtie.getRowCount()>0)jtable_modelo_detxtie.removeRow(0);

       SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");
       SimpleDateFormat formatoeuro = new SimpleDateFormat("dd-MM-yyyy");
       String pFechai = formato.format(fechai);//fecha final de reporte
       String pFecha = formato.format(fecha);//fecha final de reporte
       
       int ncol=this.jtable_modelo_detxtie.getColumnCount();
       Object[] fnewRow = new Object[ncol];

        try
        {
            rs = x.sieuno_executediversosv2("select * from x1ventasxfamiliav3(1,'"+idesq+"',"+ordena+",'"+pFechai+"','"+pFecha+"') as (id integer, can real,importe double precision,importecosto double precision,utilidad double precision,nom text);",variables_global.getconexiongral());
            while (rs.next())
                {
                    if (rs.getString("id") != null)
                        {
                         switch (visualizar)
                            {
                            case 1:
                                mespartido=rs.getString("nom").split(":");
                                columnatitulo=this.findcolumna_idtienda(mespartido[2]);
                                this.crea_hoja_familiaresumen(rs.getString("id"), mespartido[1].toUpperCase(),rs.getString("can"),columnatitulo);
                            break;
                            case 2:
                                mespartido=rs.getString("nom").split(":");
                                columnatitulo=this.findcolumna_idtienda(mespartido[2]);
                                this.crea_hoja_familiaresumen(rs.getString("id"), mespartido[1].toUpperCase(),rs.getString("importecosto"),columnatitulo);
                            break;
                            case 3:
                                mespartido=rs.getString("nom").split(":");
                                columnatitulo=this.findcolumna_idtienda(mespartido[2]);
                                this.crea_hoja_familiaresumen(rs.getString("id"), mespartido[1].toUpperCase(),rs.getString("importe"),columnatitulo);
                            break;
                            }
                      }
                }
            }
        catch(Exception e)
        {
            System.out.println(e.getMessage());
        }
     fnewRow[0]="Totales:";
     jtable_modelo_detxtie.addRow(fnewRow);
     this.setTitle("S.I. REPORTE Ventas X Familia del "+formatoeuro.format(fechai)+" al "+formatoeuro.format(fecha));
     this.contruir_totalesfamdetalle();
     }

private void contruir_reporte(Date fechai,Date fecha,int ordena,String idesq)
    {
        //fecha es la final del reporte
         DefaultCategoryDataset dataset = new DefaultCategoryDataset();//detalle por tienda
         String titulografico="",titulograficoh="",ti="";

        LimpiarJTable();//limpio si existen Registros
        DecimalFormat miformat = new DecimalFormat("###,###,###,###");
        int ii=0,idtienda=0,ndias=0,reg=0,noaten=0;
        //indicamos 7 columnas
        Object valtie = null;
        String serie1="",tienda="";

        SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");

        String pFechai = formato.format(fechai);//fecha final de reporte
        String pFecha = formato.format(fecha);//fecha final de reporte

        float importe=0,totalpiezas=0,totcosto=0,totutili=0,totporcen=0,totporcenacum=0,importe2=0,importe3=0;
        int rankin=0;
        //Voy por la venta del dia
        //serie1 = this.fechaeuropea(fechai)+" AL "+this.fechaeuropea(fecha);//fecha final de reporte
               try{
                 //rs = x.sieuno_ventas_cortedia(tienda,pFecha,i);
                 rs=x.sieuno_executediversosv2("select * from x1ventasxfamiliav2('"+idesq+"',"+ordena+",'"+pFechai+"','"+pFecha+"') as (id integer, can real,importe double precision,importecosto double precision,utilidad double precision,nom character varying(50));",variables_global.getconexiongral());
                 while (rs.next())
                        {
                            rankin++;
                            totalpiezas+=rs.getFloat(2);
                            importe+=rs.getFloat(3);
                            totcosto+=rs.getFloat(4);
                            totutili+=rs.getFloat(5);
                            jtable_modelo.addRow(new Object[]{rs.getString (1)+":"+rs.getString(6),miformat.format(rs.getFloat(2)),miformat.format(rs.getFloat(3)),miformat.format(rs.getFloat(4)),miformat.format(rs.getFloat(5)),miformat.format((rs.getFloat(5)/rs.getFloat(4))*100),0,0,rankin});
                        }
                    }
                     catch(Exception e)
                     {
                             System.out.println(e.getMessage());
                     }

            jtable_modelo.addRow(new Object[]{"<html><h3><b>Totales: "+"</b></h3></html>","<html><h3><b>"+miformat.format(totalpiezas)+"</b></h3></html>","<html><h3><b>"+miformat.format(importe)+"</b></h3></html>","<html><h3><b>"+miformat.format(totcosto)+"</b></h3></html>","<html><h3><b>"+miformat.format(totutili)+"</b></h3></html>","<html><h3><b>"+miformat.format((totutili/totcosto)*100)+"</b></h3></html>",0,0,""});

            titulografico="Grafica Ventas X Familia : "+this.fechaeuropea(fechai)+" A " + this.fechaeuropea(fecha)+" Total="+miformat.format(importe)+"";

            variables_global.settitulografica_armasvf(titulografico);

            int numerofilas=this.jtable_modelo.getRowCount()-1;
             rankin=0;
             for(int i = 0 ;i < numerofilas; i++)
                {
                 valtie=this.jtable_modelo.getValueAt(i,2);
                 serie1=this.jtable_modelo.getValueAt(i,8).toString();

                 importe2=Float.valueOf(valtie.toString().replace(",","").replace(".",""));
                 totporcen=(Float.valueOf(valtie.toString().replace(",","").replace(".",""))/importe)*100;
                 totporcenacum+=totporcen;
                 jtable_modelo.setValueAt(miformat.format(totporcen)+"%",i,6);
                 jtable_modelo.setValueAt(miformat.format(totporcenacum)+"%",i,7);
                          
                  dataset.addValue(importe2,this.jtable_modelo.getValueAt(i,0).toString()+"="+serie1,"Familias");
                
                 }
                 
                variables_global.setdatasetarmasvf(dataset);
                this.registrosobtenidos();
 }

private void contruir_totalesfamdetalle()
    {
         DecimalFormat myFormatter = new DecimalFormat("###,###,###");
         float totalve=0,totalve2=0;
         Object[] fnewRow = new Object[jtable_modelo_detxtie.getColumnCount()];
         int totalfilasreporte=this.jtable_modelo_detxtie.getRowCount()-1,i=0,ii=0,numerotiendas=this.jtable_tiendas.getRowCount();
           for(i=0;i<totalfilasreporte;i++)
                  {
                        for( ii=0;ii<numerotiendas;ii++)
                            {
                                totalve+=Float.valueOf(jtable_modelo_detxtie.getValueAt(i, ii+1).toString().replace(",","").replace(".",""));
                            }
                        //jtable_modelo_detxtie.setValueAt("<html><h3><b>"+myFormatter.format(totalve)+"</b></h3></html>",i,ii+1);
                        jtable_modelo_detxtie.setValueAt(""+myFormatter.format(totalve)+"",i,ii+1);
                        totalve=0;
                  }
            totalve=0;
           for( ii=0;ii<numerotiendas+1;ii++)
            {
             totalve=0;
                for(i=0;i<totalfilasreporte;i++)
                    {
                        totalve+=Float.valueOf(jtable_modelo_detxtie.getValueAt(i, ii+1).toString().replace(",","").replace(".",""));
                    }
                    jtable_modelo_detxtie.setValueAt("<html><h3><b>"+myFormatter.format(totalve)+"</b></h3></html>",i,ii+1);
                    //jtable_modelo_detxtie.setValueAt(""+myFormatter.format(totalve)+"",i,ii+1);
            }
     }

private String  fechaeuropea(Date fecha) {
       SimpleDateFormat formateadorestaeuropa = new SimpleDateFormat("dd-MM-yyyy");
       String cadenafecha="";

       cadenafecha= formateadorestaeuropa.format(fecha);
       return cadenafecha;

    }

void registrosobtenidos()
 {
     //limpiar la tabla
    this.jlbl_cantidadregistros.setText(String.valueOf(this.jtable_modelo.getRowCount()));

 }
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        buttonGroup2 = new javax.swing.ButtonGroup();
        buttonGroup3 = new javax.swing.ButtonGroup();
        jPanel1 = new javax.swing.JPanel();
        jbtn_salir = new javax.swing.JButton();
        jPanel2 = new javax.swing.JPanel();
        jbtn_helayudame = new javax.swing.JButton();
        jrbtn_generagrafica = new javax.swing.JRadioButton();
        jPanel3 = new javax.swing.JPanel();
        jcbx_tiendas = new javax.swing.JComboBox();
        jLabel4 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jrbtn_estemes = new javax.swing.JRadioButton();
        jrbtn_mespasada = new javax.swing.JRadioButton();
        jrbtn_mesactuaante = new javax.swing.JRadioButton();
        jrbtn_incluirtodo = new javax.swing.JRadioButton();
        jdc_fechafinal = new com.toedter.calendar.JDateChooser();
        jdc_fechainicial = new com.toedter.calendar.JDateChooser();
        jbtn_generareporte = new javax.swing.JButton();
        jLabel2 = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jrbtn_piezas = new javax.swing.JRadioButton();
        jrbtn_importe = new javax.swing.JRadioButton();
        jrbtn_masrentable = new javax.swing.JRadioButton();
        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel4 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jtb_repxfamilias = new javax.swing.JTable(){
            public boolean isCellEditable(int rowIndex, int mColIndex) {
                return false;
            }}
            ;
            ;
            jLabel7 = new javax.swing.JLabel();
            jlbl_cantidadregistros = new javax.swing.JLabel();
            jLabel6 = new javax.swing.JLabel();
            jPanel5 = new javax.swing.JPanel();
            jScrollPane2 = new javax.swing.JScrollPane();
            jtb_repxfamilias1 = new javax.swing.JTable(){
                public boolean isCellEditable(int rowIndex, int mColIndex) {
                    return false;
                }}
                ;
                ;
                jLabel33 = new javax.swing.JLabel();
                jrbtn_piezas1 = new javax.swing.JRadioButton();
                jrbtn_importe1 = new javax.swing.JRadioButton();
                jrbtn_preventa = new javax.swing.JRadioButton();
                jMenuBar1 = new javax.swing.JMenuBar();
                jMenu1 = new javax.swing.JMenu();
                jmni_generareporte = new javax.swing.JMenuItem();
                jmni_graficarreporte = new javax.swing.JMenuItem();
                jmni_salir = new javax.swing.JMenuItem();
                jMenu2 = new javax.swing.JMenu();
                jmni_iratiendas = new javax.swing.JMenuItem();
                jmni_irafechainicial = new javax.swing.JMenuItem();
                jmni_iraordenarpor = new javax.swing.JMenuItem();
                jmni_opcionesfechas = new javax.swing.JMenuItem();
                jmni_escape = new javax.swing.JMenuItem();
                jMenu3 = new javax.swing.JMenu();
                jmni_ayuda = new javax.swing.JMenuItem();
                jmni_crearcomentario = new javax.swing.JMenuItem();

                setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
                org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(sie_invdis.Sie_invdisApp.class).getContext().getResourceMap(articulos_sie_repventaxfam.class);
                setTitle(resourceMap.getString("Form.title")); // NOI18N
                setName("Form"); // NOI18N

                jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
                jPanel1.setName("jPanel1"); // NOI18N

                jbtn_salir.setIcon(resourceMap.getIcon("jbtn_salir.icon")); // NOI18N
                jbtn_salir.setText(resourceMap.getString("jbtn_salir.text")); // NOI18N
                jbtn_salir.setName("jbtn_salir"); // NOI18N
                jbtn_salir.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jbtn_salirActionPerformed(evt);
                    }
                });

                javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
                jPanel1.setLayout(jPanel1Layout);
                jPanel1Layout.setHorizontalGroup(
                    jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addContainerGap(856, Short.MAX_VALUE)
                        .addComponent(jbtn_salir)
                        .addContainerGap())
                );
                jPanel1Layout.setVerticalGroup(
                    jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jbtn_salir)
                );

                jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder());
                jPanel2.setName("jPanel2"); // NOI18N

                jbtn_helayudame.setIcon(resourceMap.getIcon("jbtn_helayudame.icon")); // NOI18N
                jbtn_helayudame.setText(resourceMap.getString("jbtn_helayudame.text")); // NOI18N
                jbtn_helayudame.setName("jbtn_helayudame"); // NOI18N
                jbtn_helayudame.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jbtn_helayudameActionPerformed(evt);
                    }
                });

                jrbtn_generagrafica.setText(resourceMap.getString("jrbtn_generagrafica.text")); // NOI18N
                jrbtn_generagrafica.setName("jrbtn_generagrafica"); // NOI18N
                jrbtn_generagrafica.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jrbtn_generagraficaActionPerformed(evt);
                    }
                });

                javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
                jPanel2.setLayout(jPanel2Layout);
                jPanel2Layout.setHorizontalGroup(
                    jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                        .addComponent(jrbtn_generagrafica)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 723, Short.MAX_VALUE)
                        .addComponent(jbtn_helayudame))
                );
                jPanel2Layout.setVerticalGroup(
                    jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jbtn_helayudame)
                            .addComponent(jrbtn_generagrafica))
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                );

                jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder());
                jPanel3.setName("jPanel3"); // NOI18N

                jcbx_tiendas.setToolTipText(resourceMap.getString("jcbx_tiendas.toolTipText")); // NOI18N
                jcbx_tiendas.setName("jcbx_tiendas"); // NOI18N
                jcbx_tiendas.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jcbx_tiendasActionPerformed(evt);
                    }
                });

                jLabel4.setText(resourceMap.getString("jLabel4.text")); // NOI18N
                jLabel4.setName("jLabel4"); // NOI18N

                jLabel3.setText(resourceMap.getString("jLabel3.text")); // NOI18N
                jLabel3.setName("jLabel3"); // NOI18N

                buttonGroup1.add(jrbtn_estemes);
                jrbtn_estemes.setText(resourceMap.getString("jrbtn_estemes.text")); // NOI18N
                jrbtn_estemes.setToolTipText(resourceMap.getString("jrbtn_estemes.toolTipText")); // NOI18N
                jrbtn_estemes.setName("jrbtn_estemes"); // NOI18N
                jrbtn_estemes.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jrbtn_estemesActionPerformed(evt);
                    }
                });

                buttonGroup1.add(jrbtn_mespasada);
                jrbtn_mespasada.setText(resourceMap.getString("jrbtn_mespasada.text")); // NOI18N
                jrbtn_mespasada.setToolTipText(resourceMap.getString("jrbtn_mespasada.toolTipText")); // NOI18N
                jrbtn_mespasada.setName("jrbtn_mespasada"); // NOI18N
                jrbtn_mespasada.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jrbtn_mespasadaActionPerformed(evt);
                    }
                });

                buttonGroup1.add(jrbtn_mesactuaante);
                jrbtn_mesactuaante.setText(resourceMap.getString("jrbtn_mesactuaante.text")); // NOI18N
                jrbtn_mesactuaante.setToolTipText(resourceMap.getString("jrbtn_mesactuaante.toolTipText")); // NOI18N
                jrbtn_mesactuaante.setName("jrbtn_mesactuaante"); // NOI18N
                jrbtn_mesactuaante.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jrbtn_mesactuaanteActionPerformed(evt);
                    }
                });

                buttonGroup1.add(jrbtn_incluirtodo);
                jrbtn_incluirtodo.setText(resourceMap.getString("jrbtn_incluirtodo.text")); // NOI18N
                jrbtn_incluirtodo.setToolTipText(resourceMap.getString("jrbtn_incluirtodo.toolTipText")); // NOI18N
                jrbtn_incluirtodo.setName("jrbtn_incluirtodo"); // NOI18N
                jrbtn_incluirtodo.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jrbtn_incluirtodoActionPerformed(evt);
                    }
                });

                jdc_fechafinal.setToolTipText(resourceMap.getString("jdc_fechafinal.toolTipText")); // NOI18N
                jdc_fechafinal.setDateFormatString(resourceMap.getString("jdc_fechafinal.dateFormatString")); // NOI18N
                jdc_fechafinal.setMaxSelectableDate(new java.util.Date(253370790102000L));
                jdc_fechafinal.setName("jdc_fechafinal"); // NOI18N

                jdc_fechainicial.setToolTipText(resourceMap.getString("jdc_fechainicial.toolTipText")); // NOI18N
                jdc_fechainicial.setDateFormatString(resourceMap.getString("jdc_fechainicial.dateFormatString")); // NOI18N
                jdc_fechainicial.setName("jdc_fechainicial"); // NOI18N
                jdc_fechainicial.addInputMethodListener(new java.awt.event.InputMethodListener() {
                    public void caretPositionChanged(java.awt.event.InputMethodEvent evt) {
                    }
                    public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) {
                        jdc_fechainicialInputMethodTextChanged(evt);
                    }
                });
                jdc_fechainicial.addKeyListener(new java.awt.event.KeyAdapter() {
                    public void keyPressed(java.awt.event.KeyEvent evt) {
                        jdc_fechainicialKeyPressed(evt);
                    }
                });

                jbtn_generareporte.setText(resourceMap.getString("jbtn_generareporte.text")); // NOI18N
                jbtn_generareporte.setToolTipText(resourceMap.getString("jbtn_generareporte.toolTipText")); // NOI18N
                jbtn_generareporte.setName("jbtn_generareporte"); // NOI18N
                jbtn_generareporte.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jbtn_generareporteActionPerformed(evt);
                    }
                });

                jLabel2.setText(resourceMap.getString("jLabel2.text")); // NOI18N
                jLabel2.setName("jLabel2"); // NOI18N

                jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N
                jLabel1.setName("jLabel1"); // NOI18N

                jLabel5.setText(resourceMap.getString("jLabel5.text")); // NOI18N
                jLabel5.setName("jLabel5"); // NOI18N

                buttonGroup2.add(jrbtn_piezas);
                jrbtn_piezas.setText(resourceMap.getString("jrbtn_piezas.text")); // NOI18N
                jrbtn_piezas.setActionCommand(resourceMap.getString("jrbtn_piezas.actionCommand")); // NOI18N
                jrbtn_piezas.setName("jrbtn_piezas"); // NOI18N
                jrbtn_piezas.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jrbtn_piezasActionPerformed(evt);
                    }
                });

                buttonGroup2.add(jrbtn_importe);
                jrbtn_importe.setText(resourceMap.getString("jrbtn_importe.text")); // NOI18N
                jrbtn_importe.setActionCommand(resourceMap.getString("jrbtn_importe.actionCommand")); // NOI18N
                jrbtn_importe.setName("jrbtn_importe"); // NOI18N
                jrbtn_importe.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jrbtn_importeActionPerformed(evt);
                    }
                });

                buttonGroup2.add(jrbtn_masrentable);
                jrbtn_masrentable.setText(resourceMap.getString("jrbtn_masrentable.text")); // NOI18N
                jrbtn_masrentable.setActionCommand(resourceMap.getString("jrbtn_masrentable.actionCommand")); // NOI18N
                jrbtn_masrentable.setName("jrbtn_masrentable"); // NOI18N
                jrbtn_masrentable.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jrbtn_masrentableActionPerformed(evt);
                    }
                });

                javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
                jPanel3.setLayout(jPanel3Layout);
                jPanel3Layout.setHorizontalGroup(
                    jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                                .addComponent(jLabel4)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jcbx_tiendas, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(9, 9, 9)
                                .addComponent(jLabel1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jdc_fechainicial, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(18, 18, 18)
                                .addComponent(jdc_fechafinal, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(18, 18, 18)
                                .addComponent(jbtn_generareporte, javax.swing.GroupLayout.PREFERRED_SIZE, 133, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel3Layout.createSequentialGroup()
                                .addComponent(jLabel5)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jrbtn_piezas)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jrbtn_importe)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jrbtn_masrentable)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(3, 3, 3)
                                .addComponent(jrbtn_estemes)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jrbtn_mespasada)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jrbtn_mesactuaante)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jrbtn_incluirtodo, javax.swing.GroupLayout.DEFAULT_SIZE, 267, Short.MAX_VALUE)))
                        .addContainerGap())
                );
                jPanel3Layout.setVerticalGroup(
                    jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel1)
                                .addComponent(jcbx_tiendas, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jLabel4))
                            .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, 23, Short.MAX_VALUE)
                            .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addComponent(jbtn_generareporte)
                                .addComponent(jdc_fechafinal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(jdc_fechainicial, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jrbtn_estemes)
                            .addComponent(jrbtn_mespasada)
                            .addComponent(jrbtn_mesactuaante)
                            .addComponent(jrbtn_incluirtodo)
                            .addComponent(jrbtn_importe)
                            .addComponent(jrbtn_piezas)
                            .addComponent(jrbtn_masrentable)
                            .addComponent(jLabel5)
                            .addComponent(jLabel3)))
                );

                jTabbedPane1.setName("jTabbedPane1"); // NOI18N
                jTabbedPane1.addChangeListener(new javax.swing.event.ChangeListener() {
                    public void stateChanged(javax.swing.event.ChangeEvent evt) {
                        jTabbedPane1StateChanged(evt);
                    }
                });

                jPanel4.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
                jPanel4.setName("jPanel4"); // NOI18N

                jScrollPane1.setName("jScrollPane1"); // NOI18N

                jtb_repxfamilias.setModel(this.jtable_modelo);
                jtb_repxfamilias.setName("jtb_repxfamilias"); // NOI18N
                jtb_repxfamilias.addMouseListener(new java.awt.event.MouseAdapter() {
                    public void mouseClicked(java.awt.event.MouseEvent evt) {
                        jtb_repxfamiliasMouseClicked(evt);
                        if(evt.getClickCount() >= 2)
                        {
                            dioclick(evt);
                        }
                    }
                });
                jScrollPane1.setViewportView(jtb_repxfamilias);

                jLabel7.setFont(resourceMap.getFont("jLabel7.font")); // NOI18N
                jLabel7.setText(resourceMap.getString("jLabel7.text")); // NOI18N
                jLabel7.setName("jLabel7"); // NOI18N

                jlbl_cantidadregistros.setFont(resourceMap.getFont("jlbl_cantidadregistros.font")); // NOI18N
                jlbl_cantidadregistros.setText(resourceMap.getString("jlbl_cantidadregistros.text")); // NOI18N
                jlbl_cantidadregistros.setName("jlbl_cantidadregistros"); // NOI18N

                jLabel6.setFont(resourceMap.getFont("jLabel6.font")); // NOI18N
                jLabel6.setText(resourceMap.getString("jLabel6.text")); // NOI18N
                jLabel6.setName("jLabel6"); // NOI18N

                javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
                jPanel4.setLayout(jPanel4Layout);
                jPanel4Layout.setHorizontalGroup(
                    jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel4Layout.createSequentialGroup()
                        .addGap(94, 94, 94)
                        .addComponent(jLabel7)
                        .addGap(18, 18, 18)
                        .addComponent(jlbl_cantidadregistros, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel6)
                        .addContainerGap(654, Short.MAX_VALUE))
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 926, Short.MAX_VALUE)
                );
                jPanel4Layout.setVerticalGroup(
                    jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel4Layout.createSequentialGroup()
                        .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel6)
                            .addComponent(jlbl_cantidadregistros)
                            .addComponent(jLabel7))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 403, Short.MAX_VALUE)
                        .addContainerGap())
                );

                jTabbedPane1.addTab(resourceMap.getString("jPanel4.TabConstraints.tabTitle"), jPanel4); // NOI18N

                jPanel5.setName("jPanel5"); // NOI18N

                jScrollPane2.setName("jScrollPane2"); // NOI18N

                jtb_repxfamilias1.setModel(this.jtable_modelo_detxtie);
                jtb_repxfamilias1.setName("jtb_repxfamilias1"); // NOI18N
                jtb_repxfamilias.addMouseListener(new java.awt.event.MouseAdapter() {
                    public void mouseClicked(java.awt.event.MouseEvent evt) {
                        jtb_repxfamiliasMouseClicked(evt);
                        if(evt.getClickCount() >= 2)
                        {
                            dioclick(evt);
                        }
                    }
                });
                jScrollPane2.setViewportView(jtb_repxfamilias1);

                jLabel33.setText(resourceMap.getString("jLabel33.text")); // NOI18N
                jLabel33.setName("jLabel33"); // NOI18N

                buttonGroup3.add(jrbtn_piezas1);
                jrbtn_piezas1.setText(resourceMap.getString("jrbtn_piezas1.text")); // NOI18N
                jrbtn_piezas1.setActionCommand(resourceMap.getString("jrbtn_piezas1.actionCommand")); // NOI18N
                jrbtn_piezas1.setName("jrbtn_piezas1"); // NOI18N
                jrbtn_piezas1.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jrbtn_piezas1ActionPerformed(evt);
                    }
                });

                buttonGroup3.add(jrbtn_importe1);
                jrbtn_importe1.setText(resourceMap.getString("jrbtn_importe1.text")); // NOI18N
                jrbtn_importe1.setActionCommand(resourceMap.getString("jrbtn_importe1.actionCommand")); // NOI18N
                jrbtn_importe1.setName("jrbtn_importe1"); // NOI18N
                jrbtn_importe1.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jrbtn_importe1ActionPerformed(evt);
                    }
                });

                buttonGroup3.add(jrbtn_preventa);
                jrbtn_preventa.setText(resourceMap.getString("jrbtn_preventa.text")); // NOI18N
                jrbtn_preventa.setActionCommand(resourceMap.getString("jrbtn_preventa.actionCommand")); // NOI18N
                jrbtn_preventa.setName("jrbtn_preventa"); // NOI18N
                jrbtn_preventa.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jrbtn_preventaActionPerformed(evt);
                    }
                });

                javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
                jPanel5.setLayout(jPanel5Layout);
                jPanel5Layout.setHorizontalGroup(
                    jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel5Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel33)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jrbtn_piezas1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jrbtn_importe1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jrbtn_preventa)
                        .addContainerGap(677, Short.MAX_VALUE))
                    .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jPanel5Layout.createSequentialGroup()
                            .addGap(1, 1, 1)
                            .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 917, Short.MAX_VALUE)
                            .addContainerGap()))
                );
                jPanel5Layout.setVerticalGroup(
                    jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel5Layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jrbtn_importe1)
                            .addComponent(jrbtn_piezas1)
                            .addComponent(jrbtn_preventa)
                            .addComponent(jLabel33))
                        .addContainerGap(408, Short.MAX_VALUE))
                    .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()
                            .addContainerGap(45, Short.MAX_VALUE)
                            .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 184, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(209, 209, 209)))
                );

                jTabbedPane1.addTab(resourceMap.getString("jPanel5.TabConstraints.tabTitle"), jPanel5); // NOI18N

                jMenuBar1.setName("jMenuBar1"); // NOI18N

                jMenu1.setText(resourceMap.getString("jMenu1.text")); // NOI18N
                jMenu1.setName("jMenu1"); // NOI18N

                jmni_generareporte.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_G, java.awt.event.InputEvent.ALT_MASK));
                jmni_generareporte.setText(resourceMap.getString("jmni_generareporte.text")); // NOI18N
                jmni_generareporte.setName("jmni_generareporte"); // NOI18N
                jMenu1.add(jmni_generareporte);

                jmni_graficarreporte.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.ALT_MASK));
                jmni_graficarreporte.setText(resourceMap.getString("jmni_graficarreporte.text")); // NOI18N
                jmni_graficarreporte.setName("jmni_graficarreporte"); // NOI18N
                jMenu1.add(jmni_graficarreporte);

                jmni_salir.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK));
                jmni_salir.setIcon(resourceMap.getIcon("jmni_salir.icon")); // NOI18N
                jmni_salir.setText(resourceMap.getString("jmni_salir.text")); // NOI18N
                jmni_salir.setName("jmni_salir"); // NOI18N
                jmni_salir.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jmni_salirActionPerformed(evt);
                    }
                });
                jMenu1.add(jmni_salir);

                jMenuBar1.add(jMenu1);

                jMenu2.setText(resourceMap.getString("jMenu2.text")); // NOI18N
                jMenu2.setName("jMenu2"); // NOI18N

                jmni_iratiendas.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_I, java.awt.event.InputEvent.ALT_MASK));
                jmni_iratiendas.setText(resourceMap.getString("jmni_iratiendas.text")); // NOI18N
                jmni_iratiendas.setName("jmni_iratiendas"); // NOI18N
                jmni_iratiendas.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jmni_iratiendasActionPerformed(evt);
                    }
                });
                jMenu2.add(jmni_iratiendas);

                jmni_irafechainicial.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F, java.awt.event.InputEvent.ALT_MASK));
                jmni_irafechainicial.setText(resourceMap.getString("jmni_irafechainicial.text")); // NOI18N
                jmni_irafechainicial.setName("jmni_irafechainicial"); // NOI18N
                jmni_irafechainicial.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jmni_irafechainicialActionPerformed(evt);
                    }
                });
                jMenu2.add(jmni_irafechainicial);

                jmni_iraordenarpor.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK));
                jmni_iraordenarpor.setText(resourceMap.getString("jmni_iraordenarpor.text")); // NOI18N
                jmni_iraordenarpor.setName("jmni_iraordenarpor"); // NOI18N
                jmni_iraordenarpor.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jmni_iraordenarporActionPerformed(evt);
                    }
                });
                jMenu2.add(jmni_iraordenarpor);

                jmni_opcionesfechas.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.ALT_MASK));
                jmni_opcionesfechas.setText(resourceMap.getString("jmni_opcionesfechas.text")); // NOI18N
                jmni_opcionesfechas.setName("jmni_opcionesfechas"); // NOI18N
                jmni_opcionesfechas.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jmni_opcionesfechasActionPerformed(evt);
                    }
                });
                jMenu2.add(jmni_opcionesfechas);

                jmni_escape.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0));
                jmni_escape.setText(resourceMap.getString("jmni_escape.text")); // NOI18N
                jmni_escape.setName("jmni_escape"); // NOI18N
                jmni_escape.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jmni_escapeActionPerformed(evt);
                    }
                });
                jMenu2.add(jmni_escape);

                jMenuBar1.add(jMenu2);

                jMenu3.setText(resourceMap.getString("jMenu3.text")); // NOI18N
                jMenu3.setName("jMenu3"); // NOI18N

                jmni_ayuda.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.ALT_MASK));
                jmni_ayuda.setText(resourceMap.getString("jmni_ayuda.text")); // NOI18N
                jmni_ayuda.setName("jmni_ayuda"); // NOI18N
                jMenu3.add(jmni_ayuda);

                jmni_crearcomentario.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.ALT_MASK));
                jmni_crearcomentario.setText(resourceMap.getString("jmni_crearcomentario.text")); // NOI18N
                jmni_crearcomentario.setName("jmni_crearcomentario"); // NOI18N
                jmni_crearcomentario.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jmni_crearcomentarioActionPerformed(evt);
                    }
                });
                jMenu3.add(jmni_crearcomentario);

                jMenuBar1.add(jMenu3);

                setJMenuBar(jMenuBar1);

                javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
                getContentPane().setLayout(layout);
                layout.setHorizontalGroup(
                    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addContainerGap())
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jTabbedPane1)
                        .addContainerGap())
                );
                layout.setVerticalGroup(
                    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 466, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                );

                pack();
            }// </editor-fold>//GEN-END:initComponents

    private void jbtn_salirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtn_salirActionPerformed
        // TODO add your handling code here:
//        x.cierraConexion();   // TODO add your handling code here:
    this.jmni_salirActionPerformed(evt);
}//GEN-LAST:event_jbtn_salirActionPerformed

    private void jbtn_helayudameActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtn_helayudameActionPerformed
        // TODO add your handling code here:
        this.ayuda();
}//GEN-LAST:event_jbtn_helayudameActionPerformed

    private void jcbx_tiendasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jcbx_tiendasActionPerformed
        // TODO add your handling code here:
       
            if (controlcombo > 0 ) {
                String arreglo_idtie[]=this.jcbx_tiendas.getSelectedItem().toString().split(":");
                esquesele=arreglo_idtie[0];
            }
       


        //this.jtfpruebados.setText(jtable_tiendas.getValueAt(indeceta, 0).toString());
}//GEN-LAST:event_jcbx_tiendasActionPerformed

    private void jrbtn_estemesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_estemesActionPerformed
        // TODO add your handling code here:
        Calendar fechaini = Calendar.getInstance(); // obtiene la fecha actual
        fechaini.set(fechahoy.getYear()+1900,fechahoy.getMonth(), 1);
        this.jdc_fechainicial.setDate(fechaini.getTime());
        this.jdc_fechafinal.setDate(fechahoy);
}//GEN-LAST:event_jrbtn_estemesActionPerformed

    private void jrbtn_mespasadaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_mespasadaActionPerformed
        // TODO add your handling code here:
        Calendar fechamesini = Calendar.getInstance(); // obtiene la fecha actual
        //establesemos la fecha en base a la de hoy menos 1 mes en el dia 1
        fechamesini.set(fechahoy.getYear()+1900,fechahoy.getMonth()-1, 1);
        this.jdc_fechainicial.setDate(fechamesini.getTime());
        //vemos cual fue el ultimo dia del mes anterior restando los dias del mes actual
        fechamesini = Calendar.getInstance(); // obtiene la fecha actual
        int diadelmesactua=fechamesini.get(Calendar.DAY_OF_MONTH);
        fechamesini.add(Calendar.DATE, -diadelmesactua); // se resta el numero de dias del mes
        this.jdc_fechafinal.setDate(fechamesini.getTime());
}//GEN-LAST:event_jrbtn_mespasadaActionPerformed

    private void jrbtn_mesactuaanteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_mesactuaanteActionPerformed
        // TODO add your handling code here:
        Calendar fechamesini = Calendar.getInstance(); // obtiene la fecha actual
        this.jdc_fechafinal.setDate(fechamesini.getTime());
        //establesemos la fecha en base a la de hoy menos 1 mes en el dia 1
        fechamesini.set(fechahoy.getYear()+1900,fechahoy.getMonth()-1, 1);
        this.jdc_fechainicial.setDate(fechamesini.getTime());

    }//GEN-LAST:event_jrbtn_mesactuaanteActionPerformed

    private void jrbtn_incluirtodoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_incluirtodoActionPerformed
        // TODO add your handling code here:
        Calendar fechainisem = Calendar.getInstance(); // obtiene la fecha actual


        fechainisem.set(2010,4,1); // incrementa en 30 días la fecha actual.
        this.jdc_fechainicial.setDate(fechainisem.getTime());

        this.jdc_fechafinal.setDate(fechahoy);
}//GEN-LAST:event_jrbtn_incluirtodoActionPerformed

    private void jdc_fechainicialInputMethodTextChanged(java.awt.event.InputMethodEvent evt) {//GEN-FIRST:event_jdc_fechainicialInputMethodTextChanged
        // TODO add your handling code here:
    }//GEN-LAST:event_jdc_fechainicialInputMethodTextChanged

    private void jdc_fechainicialKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jdc_fechainicialKeyPressed
        // TODO add your handling code here:
}//GEN-LAST:event_jdc_fechainicialKeyPressed

    private void jbtn_generareporteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtn_generareporteActionPerformed
        // TODO add your handling code here:
        if(JOptionPane.showConfirmDialog(null, "Estan Correctos sus Datos?")==0) {
            String arreglo_idtie[]=this.jcbx_tiendas.getSelectedItem().toString().split(":");
            esquesele=arreglo_idtie[0];
            this.contruir_reporte(this.jdc_fechainicial.getDate(),this.jdc_fechafinal.getDate(),ordenamiento,esquesele);
            this.carga_datos_familiaresumen(this.jdc_fechainicial.getDate(),this.jdc_fechafinal.getDate(),ordenamiento,esquesele);
        }


    }//GEN-LAST:event_jbtn_generareporteActionPerformed

    private void jrbtn_piezasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_piezasActionPerformed
        // TODO add your handling code here:
        ordenamiento=Integer.parseInt(evt.getActionCommand().toString());
}//GEN-LAST:event_jrbtn_piezasActionPerformed

    private void jrbtn_importeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_importeActionPerformed
        // TODO add your handling code here:
        ordenamiento=Integer.parseInt(evt.getActionCommand().toString());
}//GEN-LAST:event_jrbtn_importeActionPerformed

    private void jrbtn_masrentableActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_masrentableActionPerformed
        // TODO add your handling code here:
        ordenamiento=Integer.parseInt(evt.getActionCommand().toString());
}//GEN-LAST:event_jrbtn_masrentableActionPerformed

    private void jmni_salirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmni_salirActionPerformed
        // TODO add your handling code here:
    if(JOptionPane.showConfirmDialog(null, "Desea Salir?")==0)
                {
                    this.dispose();
                }
    }//GEN-LAST:event_jmni_salirActionPerformed

    private void jrbtn_generagraficaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_generagraficaActionPerformed
        // TODO add your handling code here:
        System.out.println("se crea nuevo:");
        ventas_sie_cortes_graficacion demo1amf = new ventas_sie_cortes_graficacion("Sistema Integral: Ventas X Familia",6);
        demo1amf.pack();
        RefineryUtilities.centerFrameOnScreen(demo1amf);
        demo1amf.setVisible(true);
}//GEN-LAST:event_jrbtn_generagraficaActionPerformed

    private void jmni_iratiendasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmni_iratiendasActionPerformed
        // TODO add your handling code here:
        this.jcbx_tiendas.requestFocus();
    }//GEN-LAST:event_jmni_iratiendasActionPerformed

    private void jmni_irafechainicialActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmni_irafechainicialActionPerformed
        // TODO add your handling code here:
        this.jdc_fechainicial.requestFocus();
    }//GEN-LAST:event_jmni_irafechainicialActionPerformed

    private void jmni_iraordenarporActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmni_iraordenarporActionPerformed
        // TODO add your handling code here:
        this.jrbtn_importe.requestFocus();
    }//GEN-LAST:event_jmni_iraordenarporActionPerformed

    private void jmni_opcionesfechasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmni_opcionesfechasActionPerformed
        // TODO add your handling code here:
        this.jrbtn_mespasada.requestFocus();
    }//GEN-LAST:event_jmni_opcionesfechasActionPerformed

    private void jmni_crearcomentarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmni_crearcomentarioActionPerformed
        // TODO add your handling code here:
        this.crearcomentario();
    }//GEN-LAST:event_jmni_crearcomentarioActionPerformed

    private void jmni_escapeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmni_escapeActionPerformed
        // TODO add your handling code here:
        this.jmni_salirActionPerformed(evt);
    }//GEN-LAST:event_jmni_escapeActionPerformed

    private void jTabbedPane1StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jTabbedPane1StateChanged
        // TODO add your handling code here:
           indexactual=this.jTabbedPane1.getSelectedIndex();
           if((indexactual==1)&&(yacarguefaxti==0))
                {
                    yacarguefaxti=1;
                    this.carga_datos_familiaresumen(this.jdc_fechainicial.getDate(),this.jdc_fechafinal.getDate(),ordenamiento,esquesele);

                }
    }//GEN-LAST:event_jTabbedPane1StateChanged

    private void jrbtn_piezas1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_piezas1ActionPerformed
        // TODO add your handling code here:
        visualizar=Integer.parseInt(evt.getActionCommand().toString());
}//GEN-LAST:event_jrbtn_piezas1ActionPerformed

    private void jrbtn_importe1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_importe1ActionPerformed
        // TODO add your handling code here:
        visualizar=Integer.parseInt(evt.getActionCommand().toString());
}//GEN-LAST:event_jrbtn_importe1ActionPerformed

    private void jrbtn_preventaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_preventaActionPerformed
        // TODO add your handling code here:
        visualizar=Integer.parseInt(evt.getActionCommand().toString());
}//GEN-LAST:event_jrbtn_preventaActionPerformed
private  void ayuda()
      {
                String punto1="1.- Este Reporte muestra Ventas Por Familia en un rango de Fechas determinado \n";
                String punto2="2.- Cada Boton tiene Una letra Resaltada el cual indica su metodo abreviado, uselo si desea mayor rapides ( ejemplo Alt+a obtendra ayuda automaticamente)\n";
                String punto3="3.- Algunos Reportes pueden tardar Unos minutos dependiento del rango de Fechas seleccionadas. \n ";
                String punto4="4.- Pase el Puntero del Mause sobre el Elemento este le mostrara una pequeña descripcion de lo qu hace. \n ";
                JOptionPane.showMessageDialog(null,""+punto1+punto2+punto3+punto4+"", "Sistema Integral(Reporte Ventas por Proveedor) : Ayuda",1);
      }
private void crearcomentario()
          {
                 String retorno="";

        String comentario=JOptionPane.showInputDialog("Ingresa Tu Sugerencia o Comentario:");
        if (comentario.length()>0)
        {
            rs = x.sieuno_executediversosv2("select * from x1distribucion_bitacorainserta('"+comentario+"', 'Rep. Ventas x fam');",variables_global.getconexiongral());
            try
            {

               while (rs.next())
                    {
                         retorno=rs.getString(1);
                   }
             }
            catch(Exception e)
            {
                System.out.println(e.getMessage());
            }
            if (retorno.equals("1"))
              {
                JOptionPane.showMessageDialog(null,"Gracias Tu comentario ha sido guardado", "Sistema Integral Comentarios",1);

              }

      }
    }

private void dioclick(java.awt.event.MouseEvent evt) {
        // TODO add your handling code here:
        System.out.println("dio doble  click");

        SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");

        String pFechai = formato.format(this.jdc_fechainicial.getDate());//fecha final de reporte
        String pFecha = formato.format(this.jdc_fechafinal.getDate());//fecha final de reporte

        String arreglo_idtienda[]=this.jcbx_tiendas.getSelectedItem().toString().split(":");

        int fila = jtb_repxfamilias.getSelectedRow();
        String arregle_idsubfam[] = jtb_repxfamilias.getValueAt(fila, 8).toString().split(":");

        articulos_sie_rep_masvendidos fasrm=new articulos_sie_rep_masvendidos(2, arreglo_idtienda[0],arregle_idsubfam[0],pFechai,pFecha,"Familia:"+arregle_idsubfam[1]);
        fasrm.pack();
        fasrm.setVisible(true);

        //setVisible(false);
    }
 private void jtb_repxfamiliasMouseClicked(java.awt.event.MouseEvent evt) {
        // TODO add your handling code here:
    }
    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new articulos_sie_repventaxfam().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.ButtonGroup buttonGroup2;
    private javax.swing.ButtonGroup buttonGroup3;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel33;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu3;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JButton jbtn_generareporte;
    private javax.swing.JButton jbtn_helayudame;
    private javax.swing.JButton jbtn_salir;
    private javax.swing.JComboBox jcbx_tiendas;
    private com.toedter.calendar.JDateChooser jdc_fechafinal;
    private com.toedter.calendar.JDateChooser jdc_fechainicial;
    private javax.swing.JLabel jlbl_cantidadregistros;
    private javax.swing.JMenuItem jmni_ayuda;
    private javax.swing.JMenuItem jmni_crearcomentario;
    private javax.swing.JMenuItem jmni_escape;
    private javax.swing.JMenuItem jmni_generareporte;
    private javax.swing.JMenuItem jmni_graficarreporte;
    private javax.swing.JMenuItem jmni_irafechainicial;
    private javax.swing.JMenuItem jmni_iraordenarpor;
    private javax.swing.JMenuItem jmni_iratiendas;
    private javax.swing.JMenuItem jmni_opcionesfechas;
    private javax.swing.JMenuItem jmni_salir;
    private javax.swing.JRadioButton jrbtn_estemes;
    private javax.swing.JRadioButton jrbtn_generagrafica;
    private javax.swing.JRadioButton jrbtn_importe;
    private javax.swing.JRadioButton jrbtn_importe1;
    private javax.swing.JRadioButton jrbtn_incluirtodo;
    private javax.swing.JRadioButton jrbtn_masrentable;
    private javax.swing.JRadioButton jrbtn_mesactuaante;
    private javax.swing.JRadioButton jrbtn_mespasada;
    private javax.swing.JRadioButton jrbtn_piezas;
    private javax.swing.JRadioButton jrbtn_piezas1;
    private javax.swing.JRadioButton jrbtn_preventa;
    private javax.swing.JTable jtb_repxfamilias;
    private javax.swing.JTable jtb_repxfamilias1;
    // End of variables declaration//GEN-END:variables

}
